package com.haiyou.common.constants.game;

import java.util.List;

import com.google.common.collect.Lists;

public interface BuffConstants {

	/**
	 * buff效果
	 */
	public interface Effect {
		/** 1 中毒（出手次数持续掉血） */
		int POSION = 1;

		/** 2 灼烧（回合持续掉血） */
		int BURN = 2;

		/** 3 破绽（防御降低） */
		int FLAW = 3;

		/** 4 虚弱（武力降低） */
		int WEAK = 4;

		/** 5 内伤（内力降低） */
		int INJURED = 5;

		/** 6 迟缓（身法降低） */
		int SLOW = 6;

		/** 7 失明（命中降低） */
		int BLIND = 7;

		/** 8 神力（武力增加） */
		int POWER = 8;

		/** 9 坚固（防御增加） */
		int DEFANSE = 9;

		/** 10 混乱（攻击己方） */
		int CHAOS = 10;

		/** 11散功（无法释放主动技能） */
		int SCATTERED = 11;

		/** 12 点穴（无法行动） */
		int ACUPUNCTURE = 12;

		/** 13 眩晕（无法行动） */
		int VERTIGO = 13;

		/** 14 冻结（无法成为目标，除净化） */
		int FROZEN = 14;

		/** 15 昏睡（无法行动，被攻击唤醒） */
		int SLEEP = 15;

		/** 16 低落（无法回内） */
		int HELPLESS = 16;

		/** 17 回血（回合持续回血） */
		int HEALTH = 17;

		/** 18 挑衅（只能攻击挑衅目标） */
		int TIAO_XIN = 18;

		/** 19 反弹（反弹部分伤害） */
		int FAN_TAN = 19;

		/** 20 喝酒（武力增加） */
		int SWIG = 20;

		/** 21 逍遥游（闪避增加） */
		int XIAO_YAO_YOU = 21;

		/** 22 易筋经（内力增加） */
		int YI_JING_JING = 22;

		/** 23 增加暴击（暴击增加） */
		int BEI_JIAN = 23;

		/** 24 天池心法（武力增加） */
		int TIAN_DI_XIN_FA = 24;

		/** 25 赏善（配合罚恶使角色消失） */
		int SHANG_SHAN = 25;

		/** 26 罚恶（配合赏善使角色消失） */
		int FA_E = 26;

		/** 27 斗转星移（不受伤害，且反弹伤害） */
		int DOU_ZHUAN_XING_YI = 27;

		/** 28 反制（被攻击时给敌方添加中毒效果） */
		int HU_TI = 28;

		/** 29 增加闪避（闪避增加） */
		int DODGE = 29;

		/** 30 血刀大法（被攻击时回血） */
		int XUE_DAO_DA_FA = 30;

		/** 31 逆行经脉（内力增加） */
		int NI_XING_JING_MAI = 31;

		/** 32 免疫伤害（化解） */
		int MIAN_SHANG = 32;

		/** 33 不死不休（白眉鹰王锁定效果） */
		int BU_SI_BU_XIU = 33;

		/** 34 寒毒 （青翼蝠王寒毒效果） */
		int HAN_DU = 34;

		/** 37 胆怯（受治疗降低） */
		int DAN_QUE = 37;

		/** 40.普通伤害修正（普通攻击产生的伤害的修正） */
		int NORMAL_ATTACK = 40;

		/** 41.技能伤害修正（技能产生的伤害修正） */
		int SPELL_ATTACK = 41;

		/** 41.技能伤害修正（技能产生的伤害修正） */
		int DOT = 42;

		/** 43.免疫负面状态修正（负面状态影响概率修正） */
		int IMMUNE_EXPCEPTION_STATE = 43;

		/** 44.伤害修正（伤害数值修正） */
		int BE_HURT = 44;

		/** 45.治疗修正（治疗数值修正） */
		int CURE_EXTRA = 45;

		/** 增加属性增益状态效果修正 */
		int BUFF = 46;

		/** 减少属性减益状态效果修正 */
		int DEBUFF = 47;
		/** 无视减伤 */
		int IGNORE_REDUCE_HURTED = 51;
		/** 命中率修正 */
		int TYPE52 = 52;
		/** 暴击率修正 */
		int TYPE53 = 53;
		/** 伤害修正值 */
		int BE_HURT_VAL = 100;
		/** 技能伤害修正值 */
		int SPELL_ATTACK_VAL = 101;
		/** 治疗修正值 */
		int CURE_EXTRA_VAL = 102;
		/** 持续伤害修正值 */
		int DOT_VAL = 103;
		/** 普攻伤害伤害修正值 */
		int NORMAL_ATTACK_VAL = 104;
		/** 回合恢复百分比 */
		int ROUND_RESTORE = 105;
		/** 回合恢复值 */
		int ROUND_RESTORE_VAL = 106;

		/** 最终治疗量 */
		int FINAL_CURE_VAL = 111;

//		/**释放主动技能加武力和内力系数（百分比）*/
//		int ZHUDONG_WULI_NEILI_SPELL_EFFECT = 501;
//		/**释放主动技能加武力系数（百分比）*/
//		int ZHUDONG_WULI_SPELL_EFFECT = 502;
		/** 技能CD减少（百分比） */
		int SPELL_CD_EFFECT = 503;
//		/**释放主动技能加内力系数（百分比）*/
//		int ZHUDONG_NEILI_SPELL_EFFECT = 504;
//		/**释放神技技能加武力和内力系数（百分比）*/
//		int SHENJI_NEILI_SPELL_EFFECT = 505;

		/** 暴击伤害加成 */
		int ADD_CRITICAL_HURT = 112;
		/** 暴击伤害减免 */
		int REDUCE_CRITICAL_HURTED = 113;

		/** 以下是B版本的效果类型 */
		/** 1001~2000 为主动效果,>=2001为被动效果 */

		/** 暴击率 */
		int CRITICAL_PC = 1001;
		/** 命中率 */
		int HIT_PC = 1002;
		/** 最终伤害加成 */
		int FINAL_HURT_ADD_PC = 1003;
		/** 吸血率 */
		int BLOOD_SUCKING_PC = 1004;
		/** 初始怒气 */
		int DEFALUT_ANGER = 1005;
		/** 主动技怒气降低 */
		int SPELL_ANGER_REDUCE = 1006;
		/** 治疗加成 */
		int CURE_ADD_PC = 1007;
		/** 治疗降低 */
		int CURE_REDUCE_PC = 1008;
		/** PVP伤害加成 */
		int PVP_HURT_ADD_PC = 1009;
		/** PVE伤害加成 */
		int PVE_HURT_ADD_PC = 1010;
		/** 暴击伤害加成 */
		int CRITICAL_HURT_PC = 1011;
		/** 伤害穿透 */
		int HURT_THROUGH_PC = 1012;

		/** 抗暴率 */
		int RESIST_CRITICAL_PC = 2001;
		/** 闪避率 */
		int DODGE_PC = 2002;
		/** 最终伤害减免 */
		int FINAL_HURT_REDUCE_PC = 2003;
		/** 反伤率 */
		int BACK_HURT_PC = 2004;
		/** 受疗加成 */
		int CURE_SUFFER_ADD_PC = 2007;
		/** 受疗降低 */
		int CURE_SUFFER_REDUCE_PC = 2008;
		/** PVP伤害减免 */
		int PVP_HURT_REDUCE_PC = 2009;
		/** PVE伤害减免 */
		int PVE_HURT_REDUCE_PC = 2010;
		/** 暴击伤害减免 */
		int CRITICAL_REDUCE_HURT_PC = 2011;
		/** 伤害格挡 */
		int HURT_THROUGH_REDUCE_PC = 2012;
	}

	/**
	 * buff类型v2版本
	 */
	public interface TypeV2 {
		/**
		 * 流血 中毒：每次扣除固定点数
		 */
		int TYPE101 = 101;
		/**
		 * 流血 灼烧：每次扣除气血百分比
		 */
		int TYPE102 = 102;
		/**
		 * 流血 根据攻击者灵力的百分比计算伤害
		 */
		int TYPE103 = 103;

		/**
		 * 混乱 ： 无法施放技能，随机普攻一名队友
		 */
		int TYPE104 = 104;
		/**
		 * 沉默：无法施放主动技能；
		 */
		int TYPE105 = 105;
		/**
		 * 眩晕 无法行动
		 */
		int TYPE106 = 106;
		/**
		 * 冻结：无法行动，无法被选中；
		 */
		int TYPE107 = 107;
		/**
		 * 昏睡：无法行动，受到伤害时解除；
		 */
		int TYPE108 = 108;
		/**
		 * 低弱：无法增长怒气
		 */
		int TYPE109 = 109;
		/**
		 * 回血：持续恢复生命值；
		 * 
		 * 根据攻击者灵力计算
		 */
		int TYPE110 = 110;
		/**
		 * 挑衅：嘲讽，强制攻击某一个目标
		 * 
		 */
		int TYPE111 = 111;
		/**
		 * 反弹：反弹一定比例伤害
		 * 
		 */
		int TYPE112 = 112;
		/**
		 * 闪避+将对方技能返还给对方
		 * 
		 */
		int TYPE113 = 113;
		/**
		 * 受击给对方施放毒BUFF
		 * 
		 */
		int TYPE114 = 114;
		/**
		 * 受到攻击恢复血量
		 */
		int TYPE115 = 115;
		/**
		 * 免伤：降低一定比例伤害；
		 * 
		 */
		int TYPE116 = 116;
		/**
		 * 目标锁定，一直攻击他；
		 * 
		 * 
		 */
		int TYPE117 = 117;
		/**
		 * 免疫：某一种BUFF
		 * 
		 */
		int TYPE118 = 118;
		/**
		 * 援护：帮助队友承担一次伤害
		 * 
		 */
		int TYPE119 = 119;
		/**
		 * 护盾：增加一个护盾抵挡伤害
		 * 
		 */
		int TYPE120 = 120;
		/**
		 * 易伤：受到BUFF施放者攻击时，伤害提升%
		 * 
		 */
		int TYPE121 = 121;
		/**
		 * 狂战
		 * 
		 * 狂战：每损失XX百分比气血，提升XX其他属性
		 * 
		 * 提升属性
		 * 
		 * 损失气血比例
		 * 
		 */
		int TYPE122 = 122;
		/**
		 * 易伤 易伤：受到伤害额外损失自身气血百分比的气血 易伤 123 触发：受击触发BUFF效果；配置 伤害比例；根据自身气血上限%
		 * 
		 */
		int TYPE123 = 123;
		/**
		 * 协作 根据队友数量增加自身属性，每多一个队友增加一层 属性：队友数量增加属性 124
		 * 
		 */
		int TYPE124 = 124;
		/**
		 * 技能（荆棘印记） 对buff者增加一个技能；效果根据技能效果来 追加：追击一个技能 125 技能ID
		 * 
		 */
		int TYPE125 = 125;
		/**
		 * 伤害	
		 * 
		 * 伤害印记	
		 * 
		 * BUFF叠加一定次数后，造成已损失生命%的伤害	
		 * 
		 * 伤害：BUFF叠加造成伤害	
		 * 
		 * 伤害	
		 * 
		 * 叠加次数
		 * 
		 */
		int TYPE126 = 126;
		/**
		 * 复活 若影响死亡，则下回合自动复活 复活类 127
		 * 
		 */
		int TYPE127 = 127;
		/**
		 * 易伤 BUFF状态下，受到一定百分比的额外伤害 伤害：BUFF易伤 128 伤害比例；10000
		 * 
		 */
		int TYPE128 = 128;
		/**
		 * 死亡印记 死亡后为BUFF施加者施放一个技能 追击：死亡追击 129
		 * 
		 */
		int TYPE129 = 129;
		/**
		 * 杀意	
		 * 
		 * 计算积累某个技能造成的伤害，并赋值给另外一个技能增加伤害	
		 * 
		 * 标记：累计性标记
		 * 
		 * 记录一个技能，赋值另外一个技能	
		 * 
		 * 记录技能ID	
		 * 
		 * 几率比例，1点伤害=XX杀意
		 * 
		 */
		int TYPE130 = 130;
		/**
		 * 变身 将仙灵身上某个技能替换为另一个技能，并从下回合开始生效 替换技能 131
		 * 
		 */
		int TYPE131 = 131;
		/**
		 * 持续损失怒气
		 * 
		 */
		int TYPE132 = 132;
		/**
		 * 定时爆炸	
		 * 
		 * BUFF消失时，对目标造成伤害，灵力百分比+已损失生命%	
		 * 
		 * 伤害：爆炸BUFF	
		 * 
		 * BUFF持续时间结束爆炸	
		 * 
		 * 灵力百分比	
		 * 
		 * 损失气血百分比
		 * 
		 */
		int TYPE133 = 133;
		/**
		 * 根据伤害比例给自己增加护盾	
		 * 
		 * 对敌人造成伤害时，按伤害百分比给自己增加护盾；	
		 * 
		 * 护盾：根据伤害增加护盾	
		 * 
		 * 护盾值根据伤害累加计算
		 * 
		 * 伤害百分比
		 * 
		 * 单次生命值上限|累计生命上限
		 * 
		 */
		int TYPE134 = 134;
		
		/**
		 * 效果	
		 * 
		 * 流血+BUFF	
		 * 
		 * 双重效果BUFF	
		 * 
		 * 按攻击者灵力扣血，并在行动时可能触发一个技能		
		 * 
		 * 流血类：流血并附带技能		
		 * 
		 * 135	流血，根据攻击者灵力计算。额外技能触发，自己行动时触发	
		 * 
		 * 流血灵力百分比	
		 * 
		 * 额外触发技能id
		 * 
		 */
		int TYPE135 = 135;
		/**
		 * 无法行动+无敌+治疗	双重BUFF效果	
		 * 
		 * BUFF持续期间无法移动且免疫一切伤害，BUFF结束时治疗自己一定百分比的气血	
		 * 
		 * 无敌类：无法行动+治疗				
		 * 
		 * 根据自己气血百分比治疗自己	
		 * 
		 * 百分比
		 * 
		 */
		int TYPE136 = 136;
		
		/**
		 * 效果	
		 * 
		 * 反击	
		 * 
		 * 反击护盾	
		 * 
		 * BUFF状态下受到攻击时，根据BUFF提供者的攻击力反弹一定灵力百分比的伤害	反击类：根据灵力反击伤害		
		 * 
		 * 137	
		 * 
		 * 根据BUFF提供者灵力比例，走技能伤害计算公式；	
		 * 
		 * 百分比
		 * 
		 */
		int TYPE137 = 137;
		

		/**
		 * 效果	护盾	
		 * 
		 * 治疗转伤害	
		 * 
		 * BUFF下受到治疗时，额外受到BUFF提供者灵力的伤害	
		 * 
		 * 伤害类：治疗转伤害		
		 * 
		 * 138	
		 * 
		 * 根据BUFF提供者灵力比例，走技能伤害计算公式；	
		 * 
		 * 百分比
		 * 
		 */
		int TYPE138 = 138;
		/**
		 * 气血百分比护盾
		 * 
		 * 根据角色气血上限百分比提供护盾
		 * 
		 * 护盾：根据气血百分比提供护盾
		 * 
		 * 气血百分比
		 */
		int TYPE139 = 139;
		
		/**
		 * 效果	
		 * 
		 * 易伤	
		 * 
		 * 受暴击时触发额外易伤	
		 * 
		 * BUFF状态下，如果攻击者暴击，会额外受到攻击者一定灵力百分比的伤害；走计算公式	
		 * 
		 * 易伤类：暴击触发额外伤害		
		 * 
		 * 140	
		 * 
		 * 灵力百分比	
		 * 
		 * 百分比	
		 */
		int TYPE140 = 140;
		/**
		 * 雷霆过载	
		 * 
		 * 持续期间增加属性，叠满后触发另外一个BUFF	
		 * 
		 * 增加属性，叠加层数，层数叠加满可替换为另外一个BUFF	
		 * 
		 * 属性类：直接增加属性，叠满触发新技能ID	
		 * 
		 * 属性；技能ID，BUFFID为空，则不触发新效果，新BUFF持续期间免疫原BUFF	
		 * 
		 * 属性	
		 * 
		 * 新BUFFid
		 * 
		 */
		int TYPE141 = 141;
		
		/**
		 * BUFF持续期间BUFF叠加一定层数触发一个技能，触发后，BUFF消失
		 * 
		 */
		int TYPE142 = 142;
		
		/**
		 * 行动类	
		 * 
		 * 怒气小于<x%时，自身无法行动（类似眩晕）	对自己施放，怒气小于一定百分比（怒气上限；常量表配置），自身进入无法移动状态，效果持续结束时，触发一个新技能	
		 * 
		 * 效果类	143	
		 * 
		 * 配置怒气值，百分比 10000	
		 * 
		 * 百分比	
		 * 
		 * 持续结束时触发技能ID；
		 * 
		 */
		int TYPE143 = 143;
		/**
		 * 根据BUFF提供者气血上限值比例，治疗目标，效果生效类型为 受击
		 * 
		 */
		int TYPE144 = 144;
		/**
		 * 根据自身气血百分比进行治疗，恢复气血
		 * 
		 */
		int TYPE145 = 145;
		
		/**
		 * 爆炸技能
		 * 
		 * 回合结束施放一个技能
		 * 
		 * BUFF触发一个技能，在回合技术时触发；触发后BUFF消失；技能释放次数=BUFF层数；可配置BUFF初始层数
		 * 触发时类似effect=1007的效果，把一个技能生效N次
		 * 
		 * 定时技能
		 * 
		 * 配置技能ID
		 * 
		 */
		int TYPE146 = 146;
		
		/**
		 * 变身BUFF
		 * 
		 * 增强属性，BUFF持续结束触发新BUFF
		 * 
		 * 触发BUFF
		 * 
		 * 配置BUFF属性，及BUFF取消时触发的技能ID
		 * 
		 * 属性值
		 * 
		 * BUFF结束触发新技能ID
		 * 
		 */
		int TYPE147 = 147;
		
		/**
		 * 禅定buff	
		 * 
		 * 沉默+属性变化	
		 * 
		 * 无法施放技能，并且属性降低	
		 * 
		 * 沉默+属性降低	
		 * 
		 * 支持沉默效果，并支持属性变化	
		 * 
		 * 属性值
		 * 
		 */
		int TYPE148 = 148;
		/**
		 * 紧箍标记	
		 * 
		 * 紧箍咒标记BUFF		
		 * 
		 * 标记
		 * 
		 */
		int TYPE149 = 149;
		/**
		 * 增加气血百分比护盾，并附带治疗效果，治疗效果为每回合生效。
		 * 
		 * 护盾值为目标气血上限百分比	
		 * 
		 * 治疗护盾（回合）
		 * 
		 * 治疗值；目标气血上限百分比	
		 * 
		 * 护盾值；目标气血上限百分比
		 * 
		 */
		int TYPE150 = 150;
		/**
		 * 受到标记的目标被BUFF标记者攻击时有一定比例的额外伤害；根据BUFF层数提升伤害
		 * 
		 */
		int TYPE151 = 151;
		
		
		/**
		 * 效果	
		 * 
		 * 触发技能	
		 * 
		 * 根据BUFF层数触发技能	
		 * 
		 * 攻击目标给目标附加BUFF，根据层数触发一个技能，可配置多个层数对应多个技能	
		 * 
		 * 层数触发技能BUFF		
		 * 
		 * 153	
		 * 
		 * 配置层数；技能； 	
		 * 
		 * 技能ID|技能ID|...	
		 * 
		 * 层数|层数|...
		 */
		int TYPE153 = 153;
		/**
		 * 引爆BUFF	
		 * 
		 * 根据层数，受击触发灵力伤害	
		 * 
		 * BUFF收到BUFF施加者攻击时，引爆一层BUFF；	
		 * 
		 * 引爆BUFF	
		 * 
		 * 配置引爆造成伤害的灵力比例，走伤害计算公式	灵力 
		 * 
		 * 百分比
		 * 	
		 */
		int TYPE154 = 154;
		/**
		 * 星宿BUFF	
		 * 
		 * 计算层数；	
		 * 
		 * 与effect配合使用。积累BUFF层数；	
		 * 
		 * 计数BUFF	
		 * 
		 * 配置BUFF叠加层数；		
		 */
		int TYPE155 = 155;
		/**
		 * 双生BUFF
		 * 
		 * 一次同时给两个/多个目标提供属性BUFF；只有当BUFF都存在是BUFF生效，其中一个死亡则BUFF消失
		 * 
		 * 共生BUFF
		 * 
		 * buff共生存在所需的数量
		 * 
		 * 属性
		 * 
		 * 数量
		 */
		int TYPE156 = 156;
		
		/**
		 * 流血+BUFF
		 * 
		 * 割裂
		 * 
		 * BUFF者行动时，自己受到自己灵力百分比的伤害，并受到属性降低影响
		 * 
		 * 配置；灵力百分比和影响属性
		 * 
		 * 属性影响
		 * 
		 * 灵力百分比
		 */
		int TYPE157 = 157;
		/**
		 * 持续流血，并在目标死亡时爆炸触发一个技能 
		 * 
		 * 流血系数；灵力系数； 爆炸技能ID
		 */
		int TYPE158 = 158;
		/**
		 * 无法复活
		 * 
		 * 免疫复活
		 * 
		 * 免疫复活BUFF，和复活效果
		 * 
		 */
		int TYPE159 = 159;
		
		/**
		 * 减伤	
		 * 
		 * 标记减伤	
		 * 
		 * 天赋技能	
		 * 
		 * 标记目标，使目标对自己的伤害降低一定百分比		
		 * 
		 * 160	
		 * 
		 * 百分比	
		 */
		int TYPE160 = 160;
		
		/**
		 * 护盾 
		 * 
		 * 治疗护盾 
		 * 
		 * 超疗护盾 
		 * 
		 * 根据治疗溢出值给予护盾；超出比例，及护盾上限 
		 * 
		 * 治疗溢出护盾 
		 * 
		 * 161
		 * 
		 * 溢出护盾，护盾值=溢出治疗*百分比系数，护盾值上限=气血百分比； 
		 * 
		 * 系数 
		 * 
		 * 上限值
		 */
		int TYPE161 = 161;
		/**
		 * 以直报直 根据目标当前回合伤害百分比 造成额外伤害；
		 * 
		 */
		int TYPE162 = 162;
		
		/**
		 * 属性	
		 * 
		 * 不动如山	
		 * 
		 * 属性类	
		 * 
		 * BUFF增加属性，但是只在目标未移动时生效；目标一旦移动则BUFF取消		
		 * 
		 * 属性		
		 * 
		 * 163	
		 * 
		 * 属性；BUFF取消类型根据角色（普攻+主动技能）是否行动判定；	
		 * 
		 * 属性配置	
		 */
		int TYPE163 = 163;
		
		/**
		 * 击杀印记
		 * 
		 * 虽远必诛
		 * 
		 * 击杀BUFF，给自己增加某一种属性，可叠加，击杀目标时BUFF取消
		 * 
		 * 属性
		 * 
		 * 属性配置
		 * 
		 */
		int TYPE164 = 164;
		
		/**
		 * 标记	
		 * 
		 * 标记	
		 * 
		 * 标记BUFF	
		 * 
		 * 给目标上一个表示	
		 * 
		 * 标记		
		 * 
		 * 165	
		 * 
		 * 标记BUFF,暂无实际效果，只是标记		
		 */
		int TYPE165 = 165;

		/**
		 * 触发性技能
		 * 
		 * BUFF状态下，每次行动额外触发一个技能，并在BUFF消失时额外触发一个技能 行动技能
		 * 
		 * 行动触发技能ID，BUFF消失触发技能ID
		 * 
		 * 技能ID
		 * 
		 * 技能ID
		 * 
		 */
		int TYPE166 = 166;
		
		/**
		 * 普攻增伤	
		 * 
		 * 普攻攻击的伤害提升x%	
		 * 
		 * 增伤	
		 * 
		 * 普攻攻击的伤害提升X%，基于原普攻伤害提高一定比例	
		 * 
		 * 百分比
		 * 
		 */
		int TYPE167 = 167;
		/**
		 * 次数护盾	
		 * 
		 * 可抵挡N次攻击伤害的护盾，不计伤害值，根据次数进行防御、使单次攻击生效。次数为0时BUFF失效	
		 * 
		 * 护盾	
		 * 
		 * 配置抵挡次数；若BUFF可叠加，则叠加次数	
		 * 
		 * 次数
		 * 
		 */
		int TYPE168 = 168;
		
		/**
		 * 行动	
		 * 
		 * 连击	
		 * 
		 * 连击BUFF	
		 * 
		 * BUFF状态下进行每次普攻时可额外进行X次普攻		
		 * 
		 * 连击		
		 * 
		 * 169	
		 * 
		 * 每回合可多次普攻，普攻次数 = 1+BUFF配置值	
		 * 
		 * 次数	
		 */
		int TYPE169 = 169;
		
		/**
		 * 属性	
		 * 
		 * 触发属性	
		 * 
		 * buff层数触发属性		
		 * 
		 * 属性		
		 * 
		 * 171	
		 * 
		 * 当某一个或者多个指定BUFF，任一BUFF层数达到上限时，激活属性加成	属性	
		 * 
		 * BUFFid|BUFFid|BUFFid
		 */
		int TYPE171 = 171;
		
		/**
		 * 免疫	
		 * 
		 * 免疫	
		 * 
		 * 免疫buff	
		 * 
		 * 免疫某些type的BUFF概率提升%  
		 * 
		 * 根据BUFF-type判定：原BUFF命中率 * （1+效果命中-效果抵抗-配置值）	
		 * 
		 * 免疫类：免疫某些TYPE的BUFF		
		 * 
		 * 173	
		 * 
		 * 配置免疫概率	
		 * 
		 * 10000，免疫概率	
		 * 
		 * BUFF-TYPE|BUFF-TYPE|BUFF-TYPE
		 */
		int TYPE173 = 173;
		
		
		/**
		 * 引爆	
		 * 
		 * 引爆BUFF	
		 * 
		 * "引爆buff	"	
		 * 
		 * 引爆目标身上一个满层数的指定ID的BUFF;并造成一定百分比灵力的伤害	
		 * 
		 * 引爆BUFF		
		 * 
		 * 174	
		 * 
		 * 配置灵力系数，走计算公式，配置BUFFid,监测该BUFF是否满层，满层时引爆，并驱散BFF	
		 * 
		 * 10000,灵力系数	
		 * 
		 * BUFFid|BUFFid|BUFFid
		 */
		int TYPE174 = 174;
		
		/**
		 * 控制	
		 * 
		 * 缴械	
		 * 
		 * 无法使用普攻	
		 * 
		 * 控制	
		 * 
		 * 无法使用普攻
		 * 
		 */
		int TYPE176 = 176;
		
		/**
		 * 反弹护盾	
		 * 
		 * 反弹	
		 * 
		 * 反弹BUFF	
		 * 
		 * 反弹伤害比例，并影响属性	反弹		
		 * 
		 * 177	
		 * 
		 * 反弹一定灵力比例的伤害，并影响属性	
		 * 
		 * 影响的属性	
		 * 
		 * buff施加者灵力比例
		 */
		int TYPE177 = 177;
		
		/**
		 * 职业克制	
		 * 
		 * 伤害克制BUFF	
		 * 
		 * 职业克制BUFF-攻	对某个职业的攻击的伤害加成 %	伤害	
		 * 
		 * 对某些职业伤害加成或者见面；正数为加成，附属为减免	
		 * 
		 * 比例	
		 * 
		 * 职业1|职业2|职业3|职业4
		 */ 
		int TYPE180 = 180;
		
		/** 
		 * 
		 * 
		 * 职业克制	
		 * 
		 * 伤害克制BUFF	
		 * 
		 * 职业克制BUFF-防	某些职业对自己攻击伤害加成/减少%	
		 * 
		 * 伤害	
		 * 
		 * 181	
		 * 
		 * "某些职业对自己造成伤害加成/减少:正数为减免（对自己伤害降低）、负数为加成（对自己伤害提升）对方对我伤害*（1-伤害减免-配置值）"	
		 * 
		 * 比例	
		 * 
		 * 职业1|职业2|职业3|职业4
		 */
		int TYPE181 = 181;

		/**
		 * 属性+额外伤害
		 * 
		 * 属性增伤
		 * 
		 * 易经洗髓
		 * 
		 * 影响自身属性，并在收到暴击时，收到一定比例额外伤害
		 * 
		 * 属性
		 * 
		 * 183
		 * 
		 * 配置影响的属性，配置暴击时的额外伤害比例（基于受到的本次伤害*伤害系数）
		 * 
		 * 属性|属性
		 * 
		 * 伤害比例
		 */
		int TYPE183 = 183;
		
		/**
		 * 技能+层数	
		 * 
		 * 层数激活触发技能	
		 * 
		 * 雷霆暴走	
		 * 
		 * 受到攻击叠加BUFF层数，达到指定层数激活一个技能。并驱散BUFF	
		 * 
		 * 层数属性	
		 * 
		 * 184	效果 153 的不同触发类型，层数触发技能机制一致	
		 * 
		 * 技能ID|技能ID	
		 * 
		 * 触发层数
		 * 
		 * 
		 */
		int TYPE184 = 184;
		
		/**
		 * 阵营克制	
		 * 
		 * 伤害克制BUFF	
		 * 
		 * 阵营克制BUFF-攻	
		 * 
		 * 对某个阵营伤害加成 %	
		 * 
		 * 伤害	
		 * 
		 * 对某些阵营伤害加成或者减免；正数为加成，附属为减免
		 */
		int TYPE185 = 185;
		/**
		 * 
		 * 阵营克制	
		 * 
		 * 伤害克制BUFF	
		 * 
		 * 阵营克制BUFF-防	
		 * 
		 * 某个阵营对自己伤害加成/减少%	
		 * 
		 * 伤害	
		 * 
		 * "某些阵营对自己造成伤害加成/减少:正数为减免（对自己伤害降低）、负数为加成（对自己伤害提升）对方对我伤害*（1-伤害减免-配置值）"
		 * 
		 */
		int TYPE186 = 186;
		/**
		 * 流血类型
		 * 
		 * 百分比气血流血
		 * 
		 * 根据BUFF施加者气血上限百分比扣除目标气血 流血
		 * 
		 * 攻击者气血上限
		 * 
		 * 气血比例%
		 * 
		 * 灵力上限值（避免BOSS类伤害异常）
		 */
		int TYPE187 = 187;
		
		/**
		 * 禁锢
		 * 
		 * 控制
		 * 
		 * 李白-禁锢buff
		 * 
		 * 目标无法行动，且死亡和buff消失会触发额外技能
		 * 
		 * buff消失触发技能：技能|技能
		 * 
		 * 目标死亡触发：技能|技能
		 */
		int TYPE189 = 189;
		
		/**
		 * 增加属性类BUFF，增加一种或者多种属性；	
		 * 
		 * 属性_值|属性_值
		 * 
		 */
		int TYPE201 = 201;
		/**
		 * 双属性	降低对手，提升自己	
		 * 
		 * 属性偷取类型，降低对手一定比例属性，并将降低的提升给自己	
		 * 
		 * 属性偷取	
		 * 
		 * 根据对手某属性百分比降低，并将降低至附加给自己
		 * 
		 */
		int TYPE202 = 202;
		/**
		 * 条件属性	
		 * 
		 * 存活属性	
		 * 
		 * 队友存活数量激活属性  
		 * 
		 * 属性 = 配置值* 队友数量	
		 * 
		 * 不包括自己，只计算队友，队友数量 * 配置值
		 * 
		 */
		int TYPE203 = 203;
		/**
		 * 条件属性	
		 * 
		 * 敌人数量>=激活属性	当敌人数量>=X个时激活 
		 * 
		 * 根据具体敌人数量生效>=X
		 * 
		 */
		int TYPE204 = 204;
		
		/**
		 * 条件属性	
		 * 
		 * 敌人数量<=激活属性	当敌人数量<=X个时激活 
		 * 
		 * 根据具体敌人数量生效<=X
		 * 
		 */
		int TYPE205 = 205;
		/**
		 * 条件属性
		 * 
		 * 自身气血>=百分比激活属性
		 * 
		 * 当自身气血>=X%个时激活
		 * 
		 * 根据具体自身气血生效>=X%
		 * 
		 */
		int TYPE206 = 206;
		/**
		 * 条件属性	
		 * 
		 * 自身气血<=百分比激活属性	
		 * 
		 * 当自身气血<=X%个时激活 
		 * 
		 * 根据具体自身气血生效<=X%
		 * 
		 */
		int TYPE207 = 207;
		
		/**
		 * 条件属性	
		 * 
		 * 队友死亡激活属性	当有一个队友死亡时，激活一层	
		 * 
		 * 根据死亡人数触发属性 死亡人数 * 配置属性	属性值
		 * 
		 */
		int TYPE208 = 208;
		/**
		 * 条件属性	
		 * 
		 * 根据某阵营人数增加属性	每存在一个某阵营角色时，增加属性	
		 * 
		 * 根据某阵营人数增加属性值，配置值 * 该阵营人数 ,队伍上阵容人数计算，不计死亡	
		 * 
		 * 阵营ID
		 * 
		 */
		int TYPE209 = 209;
		/**
		 * 损失血量叠加BUFF	每损失一定数值的血量，叠加一层BUFF；	
		 * 
		 * 属性类	210	损失血量/配置血量  *  配置属性； 
		 * 
		 * 每损失一定血量叠加一层属性	
		 * 
		 * 血量
		 * 
		 */
		int TYPE210 = 210;
		
		/**
		 * 效果	
		 * 
		 * 状态免疫	
		 * 
		 * 免疫：某一种BUFF		
		 * 
		 * 免疫类：免疫技能效果		
		 * 
		 * 211	
		 * 
		 * 免疫某种效果类型，可支持多个
		 * 
		 */
		int TYPE211 = 211;
		
		/**
		 * 属性	
		 * 
		 * 条件属性	
		 * 
		 * BUFF状态下加属性	
		 * 
		 * 当目标处于某种BUFF时，BUFF属性生效		
		 * 
		 * 属性类		
		 * 
		 * 212	
		 * 
		 * 配置属性，及BUFFTYPE
		 * 
		 * 属性值	
		 * 
		 * BUFFtype|BUFFtype|BUFFtype
		 * 
		 */
		int TYPE212 = 212;
		
		
		int TYPE213 = 213;
		
		/**
		 * 效果	
		 * 
		 * 伤害转属性	
		 * 
		 * 根据伤害比例给自己增加属性	
		 * 
		 * 对敌人造成伤害时，按伤害百分比给自己增加护盾；		
		 * 
		 * 护盾：根据伤害增加属性		
		 * 
		 * 215	属性值根据伤害累加计算	
		 * 
		 * 伤害百分比|属性类型	
		 * 
		 * 单次自身攻击上限|累计自身攻击上限
		 */
		int TYPE215 = 215;
		/**
		 * 存在某BUFF指定仙灵造成伤害提升		
		 * 
		 * 217		
		 * 
		 * 仙灵ID	
		 * 
		 * 万分比
		 */
		int TYPE217 = 217;
		/**
		 * 不存在某BUFF对指定仙灵伤害减少		
		 * 
		 * 218		
		 * 
		 * 仙灵ID	
		 * 
		 * 万分比
		 */
		int TYPE218 = 218;
		/**
		 * 属性	
		 * 
		 * 条件属性	
		 * 
		 * 损失血量比例叠加BUFF	
		 * 
		 * 每损失百分比血量/转属性 
		 * 
		 * 根据BFF层数判断上限		
		 * 
		 * 属性类			
		 * 
		 * 属性类型 属性值	
		 * 
		 * 单位血里百分比|最大层数（默认不配置为0无上限）
		 */
		int TYPE219 = 219;
		
		/**
		 * 220
		 * 
		 * 属性
		 * 
		 * 条件属性
		 * 
		 * 本次攻击暴击时加属性
		 * 
		 * "本次攻击暴击时，根据权重获取属性加成，仅本次攻击有效 （多个攻击目标时，只要其中有一个触发暴击就都算触发）
		 * 每个属性值触发概率权重由低到高，只用一个随机数，看随机数落在哪个区间 0%--10%--20%--30%--60%--100%
		 * 开场触发加buff，buff在每次攻击前判断是否暴击 暴击则根据概率判断是否触发属性，没触发则下回合概率提升，触发则重置概率 若有本回合可行动多次的情况：
		 * （1）第一次暴击没有触发，则下回合概率提升，第二次暴击触发了，则取消下回合的概率提升
		 * （2）第一次暴击并触发了，第二次暴击没触发，下回合概率不会提升，只要本回合触发过就不会提升概率了
		 * （3）第一次暴击没有触发，则下回合概率提升，第二次暴击也没触发，下回合提升概率不变化
		 * （4）第一回合暴击没触发提升了下回合的概率，下回合暴击也没触发，则概率提升叠加
		 * （5）第一回合暴击没触发提升了下回合的概率，下回合第一次暴击触发，立刻重置当前回合的提升概率，第二次暴击使用重置后的概率"
		 * 
		 * 属性类
		 * 
		 * 属性_值_概率|属性_值_概率
		 * 
		 * 未触发时下回合增加整体概率值
		 * 
		 */
		int TYPE220 = 220;
		
	}

	/**
	 * 流血类型buff
	 */
	public static List<Integer> BLOOD_BUFF = Lists.newArrayList(BuffConstants.TypeV2.TYPE101,
			BuffConstants.TypeV2.TYPE102, BuffConstants.TypeV2.TYPE103, BuffConstants.TypeV2.TYPE187);
	
	/**
	 * 控制类型buff
	 */
	public static List<Integer> CONTRAL_BUFF = Lists.newArrayList(BuffConstants.TypeV2.TYPE105,
			BuffConstants.TypeV2.TYPE106, BuffConstants.TypeV2.TYPE107, BuffConstants.TypeV2.TYPE108,
			BuffConstants.TypeV2.TYPE189);
	
	/**
	 * 护盾类型buff
	 */
	public static List<Integer> SHIELD_BUFF = Lists.newArrayList(BuffConstants.TypeV2.TYPE116,
			BuffConstants.TypeV2.TYPE120, BuffConstants.TypeV2.TYPE134, BuffConstants.TypeV2.TYPE130,
			BuffConstants.TypeV2.TYPE139, BuffConstants.TypeV2.TYPE150, BuffConstants.TypeV2.TYPE161,
			BuffConstants.TypeV2.TYPE168, BuffConstants.TypeV2.TYPE215, BuffConstants.TypeV2.TYPE189);

	/**
	 * buff类型
	 */
	public interface Type {
		/** 1-中毒； */
		int poisoning = 1;
		/** 2-灼烧； */
		int burn = 2;
		/** 3-破绽； */
		int weakPoint = 3;
		/** 4-虚弱 */
		int weak = 4;

		/** 5-重伤； */
		int GBH = 5;
		/** 6-迟缓； */
		int slow = 6;
		/** 7-失明； */
		int blind = 7;
		/** 8-神力 */
		int strength = 8;
		/** 9-防守； */
		int guard = 9;
		/** 10-混乱； */
		int chaos = 10;
		/** 11-散功 */
		int scatteredPower = 11;
		/** 12-点穴 */
		int acupoint = 12;

		/** 13-击晕 */
		int vertigo = 13;
		/** 14-冻结； */
		int freeze = 14;
		/** 15-昏睡； */
		int lethargy = 15;
		/** 16-束手； */
		int hands = 16;
		/** 17-回血 */
		int cure = 17;
		/** 18-挑衅； */
		int provoke = 18;
		/** 19-反弹 */
		int rebound = 19;

		/** 20-痛饮 */
		int swig = 20;
		/** 21-逍遥游 */
		int ramble = 21;
		/** 22-易经经 */
		int YiJingJing = 22;
		/** 23-背剑 */
		int BeiJian = 23;
		/** 24-天地心法 */
		int TianDiXinFa = 24;
		/** 25-赏善 */
		int ShangShan = 25;
		/** 26-罚恶 */
		int FaE = 26;
		/** 27-头转星移 */
		int DouZhuanXingYi = 27;
		/** 28-护体 */
		int HuTi = 28;
		/** 29-闪避 */
		int ShanBi = 29;
		/** 血刀大法 */
		int XUEDAODAFA = 30;
		/** 不死不休 */
		int BuSiBuXiu1 = 33;
		/** 不死不休 */
		int BuSiBuXiu2 = 34;

		/** 降低疗伤百分比 */
		int HEALING_REVISE = 37;

		/** 流血(流血buff从50改成513，50弃用) */
		int liuxue = 513;

		/** 必中 (buff从50改成553，53弃用) */
		int bizhong = 553;
		/** 技能反击 */
		int BACK_SPELL = 54;

		/**
		 * 不死
		 */
		int UNDEAD = 56;

		/** 盾1 */
		int SHIELD_1 = 57;
		/** 盾2 */
		int SHIELD_2 = 58;

		/** 协助BUFF */
		int ASSIST_BUFF = 59;
		/** 援护 */
		int PROTECT_BUFF = 61;

		/** 摧心掌1(损心-标记自己) */
		int CUI_XIN_ZHANG_1 = 62;
		/** 摧心掌2(损心-标记目标) */
		int CUI_XIN_ZHANG_2 = 63;
		/** 新qk(乾坤逆转-疗伤) */
		int NEW_QLDNY = 64;
		/** 新反置(反制) */
		int NEW_HUTI = 65;
		// 66减伤
		/** 对方 */
		int TAR_ASSIST_BUFF = 68;
		/** 攻击方连接 */
		int CONN_ATK = 69;
		/** 对方连接 */
		int CONN_DEF = 70;
		/** 替换技能 */
		int REPLACE_SPELL = 71;
		/** 免疫负面状态 */
		int MIAN_YI = 75;
		/** 技能释放怒气增加 */
		int SKILL_ANGER_INCREASE = 76;
		/** 技能怒气下线 */
		int SKILL_ANGER_LOWER_LIMIT = 77;
		/** 分摊 */
		int SHARE = 78;

		/** 治疗转伤害 */
		int HEAL_TO_HURT = 81;

		/** 不能选中 */
		int CANNOT_SELECT = 79;
		/** 还施(还施彼身) */
		int HUAN_SHI_BI_SHENG = 83;
		/** 星移(必闪) */
		int BI_SHANG = 84;
		/** 盾3 */
		int SHIELD_3 = 85;
		/** 摧心掌3(诛心) */
		int CUI_XIN_ZHANG_3 = 86;
		/** 素问 */
		int SU_WEN = 88;
		/** 减伤buff */
		int MITIGATION_HURT = 91;
		/** 人妖buff攻击方连接 */
		int RENYAO_CONN_ATK_FROM = 92;
		/** 人妖对方连接 */
		int RENYAO_CONN_ATK_TARGET = 93;
		/** 傻逼怒风技能 */
		int NUFENG = 94;
		/** 芳姿盈袖1 */
		int FZYX1 = 95;
		/** 芳姿盈袖2 */
		int FZYX2 = 96;

		/** 真元护体 */
		int ZYHT_FROM = 97;

		/** 真元护体 */
		int ZYHT_TARGET = 98;

		/** 金蛇游身-免伤百分比 */
		int SNAKE_BODY = 99;
		/** 金蛇狂舞-敌方施放技能时，反击并附加“中毒”buff */
		int SNAKE_DANCE = 501;
		/** 蛇毒-递增百分百扣血 */
		int SNAKE_POISON = 502;
		/** 神剑-打断敌方技能，恢复敌方n点怒气，不被敌我选为目标，对敌方施加“迟缓”buff */
		int GOD_SWORD = 503;
		/** 香意-敌方出手后，正常治疗和净化我方血量最少的侠客，并额外增加目标百分比血量治疗 */
		int FRAGRANT = 504;
		/** 有叠加上限的神力 */
		int LIMIT_GOD_POWER = 505;
		/** 天地不仁（施放方）-敌方侠客主动技能和神技概率触发散功 */
		int HEARTLESS_WORLD1 = 506;
		/** 天地不仁（被标记方）-敌方侠客主动技能和神技概率触发散功 */
		int HEARTLESS_WORLD2 = 507;
		/** 新损心1 */
		int CUI_XIN_ZHANG_508 = 508;
		/** 新损心2 */
		int CUI_XIN_ZHANG_509 = 509;
		/** 沁心-抵挡一次驱散 */
		int BUFF_510 = 510;
		/** 灵霄-已方侠客受到普通攻击、技能攻击和标记伤害时，恢复受攻击侠客满血 */
		int BUFF_511 = 511;
		/** 辟邪 */
		int BUFF_512 = 512;
		/** 冲冠-伤害为1点，敌方出手N次内有效 */
		int BUFF_514 = 514;
		/** 恢复己方侠客损失血量百分比 */
		int BUFF_515 = 515;
		/** 紊乱-减少治疗血量百分比 */
		int BUFF_516 = 516;
		/** 标记自己，当己方（自己除外）侠客施放主动技能或神技时，即发动技能对标记目标进行攻击 */
		int BUFF_517 = 517;
		/** 标记敌方目标，当己方（自己除外）侠客施放主动技能或神技时，即发动技能对标记目标进行攻击 */
		int BUFF_518 = 518;
		/** 剑气-替换技能，并使主动技怒气消耗降低 */
		int BUFF_519 = 519;
		/** 昏睡2 */
		int BUFF_520 = 520;

		/** 离间 */
		int SEPARATION = 521;

		/** 反弹伤害（自己） */
		int BOUNCE_DAMAGE_ME = 522;
		/** 反弹伤害（队友） */
		int BOUNCE_DAMAGE_OTHER = 523;

		/** 莲华 */
		int LIAN_HUA = 525;
		/** 减少蓄力 */
		int TYPE526 = 526;
		/** 化解 */
		int TYPE527 = 527;
		/** 减少CD */
		int TYPE528 = 528;
		/** 反弹（标记队友），被攻击时概率触发反弹百分比伤害，并概率给自己加buff */
		int TYPE529 = 529;
		/** 反弹（标记自己） */
		int TYPE530 = 530;
		/** 附加目标属性类型百分比 */
		int TYPE531 = 531;
		/** 未命名 */
		int TYPE532 = 532;
		/** 普攻禁术目标加伤 */
		int TYPE533 = 533;
		/** 此状态下的角色，所有攻击都必定会产生暴击 */
		int TYPE534 = 534;
		/** 回元：单次所受伤害超出气血上限的X%时，超出部分会自动回复，持续X次受击 */
		int TYPE535 = 535;
		/** 无名效果：受到高于自身气血X%的伤害时，使当次伤害无效，可生效X次 */
		int TYPE536 = 536;
		/** 无名效果：己方所有上阵侠客单次承受伤害不会超过自身气血上限的55%，持续X次受击 */
		int TYPE537 = 537;
		/** 此BUFF状态下的角色，阵亡后立即复活，恢复30%血量。持续双方出手次数X次。 */
		int TYPE538 = 538;
		/** 对目标阵营提供额外加成 。基础加成 * 在线目标阵营数量 */
		int TYPE541 = 541;
		/** 【感电】状态的敌人被攻击时会受到50%灵力的伤害 */
		int TYPE542 = 542;
		/** 暴击率提升 --李坤要,不需要处理 */
		int TYPE543 = 543;
		/** 治疗提升 --李坤要,不需要处理 */
		int TYPE544 = 544;
		/** 受疗提升 --李坤要,不需要处理 */
		int TYPE545 = 545;
		/** 不同的人上不同的buff 源(自身) */
		int TYPE547 = 547;
		/** 不同的人上不同的buff 减怒 针对(队员) */
		int TYPE548 = 548;
		/** 增益失效,被动不失效 */
		int TYPE552 = 552;
		/** 牛魔盾失效或被击破时，增加己方怒气60点 */
		int TYPE554 = 554;
		/** 被XXX仙灵攻击时，增伤X% */
		int TYPE555 = 555;
		/** 被XX阵营灵攻击时，增伤X% */
		int TYPE556 = 556;
		/** 持有者行动后无法回复怒气，且会给对方回复一定怒气 */
		int TYPE557 = 557;
	}

	
	/**
	 * buff持续类型
	 */
	public interface LastTypeV2 {
		/** 回合 */
		int ROUND = 1;
		/** 出手人数 */
		int ACTION = 2;
	}
	
	/**
	 * buff持续类型
	 */
	public interface LastType {
		/** 回合 */
		int ROUND = 1;
		/** 动作 */
		int ACTION = 2;
		/** 触发 */
		int TRIGGER = 3;
		/** 攻击 */
		int ATTACK = 4;
		/** 御剑伏魔，额外触发技能 */
		int YU_JIAN_FU_MO = 5;
		/** 援护 */
		int PROTECT = 6;
		/** 被攻击 */
		int BE_ATK = 7;
		/** 我方出手 */
		int ATK_SELL = 8;
		/** 敌方出手 */
		int DEF_SELL = 9;
		/** */
		int LAST_TYPE10 = 10;
		/** 触发次数 */
		int LAST_TYPE11 = 11;
		/** 使用扣次数 */
		int USER_NUM = 12;
		/** 使用主动技触发 */
		int TYPE14 = 14;
		/** 触发 目前与3一致 */
		int TYPE16 = 16;
		/** 双方出手扣消耗次数,但是只有被打才会触发 */
		int TYPE17 = 17;
	}

	public interface GainType {
		/** 攻击动作触发前给与 */
		int GAIN_TYPE_BEFORE_FIRE = 1;
		/** 攻击动作结束，状态列表被攻击方法调用后 */
		int GAIN_TYPE_AFTER_FIRE = 2;
		/** 攻击动作结束，状态列表被攻击方法调用前 */
		int GAIN_TYPE_AFTER_BE_ATTACK = 3;
	}
}
